优化 从照片详情页进入群首页

FFIB 6 年之前
父节点
当前提交
1089adf160

+ 0 - 16
PaiAi/Paiai.xcodeproj/project.pbxproj

@@ -247,8 +247,6 @@
247 247
 		05C8D22921EF0A9F0001E847 /* NavigationControllerProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C8D22821EF0A9F0001E847 /* NavigationControllerProxy.swift */; };
248 248
 		05C8D22B21EF0EDC0001E847 /* NavigationControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05C8D22A21EF0EDC0001E847 /* NavigationControllerDelegate.swift */; };
249 249
 		05D269E6227ED9980030062C /* NavigationSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269E5227ED9970030062C /* NavigationSource.swift */; };
250
-		05D269E9227EDFA10030062C /* Array+GroupItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269E8227EDFA10030062C /* Array+GroupItem.swift */; };
251
-		05D269EB227EDFB00030062C /* Array+PhotoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269EA227EDFB00030062C /* Array+PhotoItem.swift */; };
252 250
 		05D269EE227EE0EB0030062C /* GroupItemsOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269ED227EE0EB0030062C /* GroupItemsOperator.swift */; };
253 251
 		05D269F0227EE0FC0030062C /* PhotoItemsOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269EF227EE0FC0030062C /* PhotoItemsOperator.swift */; };
254 252
 		05D269F6227EE7F40030062C /* ItemOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05D269F5227EE7F40030062C /* ItemOperator.swift */; };
@@ -509,8 +507,6 @@
509 507
 		05C8D22821EF0A9F0001E847 /* NavigationControllerProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationControllerProxy.swift; sourceTree = "<group>"; };
510 508
 		05C8D22A21EF0EDC0001E847 /* NavigationControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationControllerDelegate.swift; sourceTree = "<group>"; };
511 509
 		05D269E5227ED9970030062C /* NavigationSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationSource.swift; sourceTree = "<group>"; };
512
-		05D269E8227EDFA10030062C /* Array+GroupItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+GroupItem.swift"; sourceTree = "<group>"; };
513
-		05D269EA227EDFB00030062C /* Array+PhotoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+PhotoItem.swift"; sourceTree = "<group>"; };
514 510
 		05D269ED227EE0EB0030062C /* GroupItemsOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupItemsOperator.swift; sourceTree = "<group>"; };
515 511
 		05D269EF227EE0FC0030062C /* PhotoItemsOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoItemsOperator.swift; sourceTree = "<group>"; };
516 512
 		05D269F5227EE7F40030062C /* ItemOperator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemOperator.swift; sourceTree = "<group>"; };
@@ -808,7 +804,6 @@
808 804
 		05130FB121C9E703004EF1BE /* Reusable */ = {
809 805
 			isa = PBXGroup;
810 806
 			children = (
811
-				05D269E7227EDF490030062C /* ModelExtension */,
812 807
 				05C71C0721DDBD55003E7CEE /* JSONCode.swift */,
813 808
 				057CA9CF21DDB7DD00FB7D03 /* NetworkArrayData.swift */,
814 809
 				0506441E1F8D09C00035857E /* StatusModel.swift */,
@@ -1176,15 +1171,6 @@
1176 1171
 			path = NavigationControllerDelegate;
1177 1172
 			sourceTree = "<group>";
1178 1173
 		};
1179
-		05D269E7227EDF490030062C /* ModelExtension */ = {
1180
-			isa = PBXGroup;
1181
-			children = (
1182
-				05D269E8227EDFA10030062C /* Array+GroupItem.swift */,
1183
-				05D269EA227EDFB00030062C /* Array+PhotoItem.swift */,
1184
-			);
1185
-			path = ModelExtension;
1186
-			sourceTree = "<group>";
1187
-		};
1188 1174
 		05D269EC227EE0D60030062C /* Reusable */ = {
1189 1175
 			isa = PBXGroup;
1190 1176
 			children = (
@@ -1751,7 +1737,6 @@
1751 1737
 				0513102C21CA1B67004EF1BE /* OrderRepository.swift in Sources */,
1752 1738
 				057CA9BA21DC836B00FB7D03 /* GroupPhotoRemoteAPI.swift in Sources */,
1753 1739
 				0513102D21CA1B67004EF1BE /* GroupPhotoRepository.swift in Sources */,
1754
-				05D269E9227EDFA10030062C /* Array+GroupItem.swift in Sources */,
1755 1740
 				05C0D98E21D22119000B7B2A /* PhotoThumbupUserItem.swift in Sources */,
1756 1741
 				05C71C0821DDBD55003E7CEE /* JSONCode.swift in Sources */,
1757 1742
 				0513102E21CA1B67004EF1BE /* PhotoGroupRepository.swift in Sources */,
@@ -1786,7 +1771,6 @@
1786 1771
 				0513104221CA1B67004EF1BE /* CreateGroupViewModel.swift in Sources */,
1787 1772
 				0513104321CA1B67004EF1BE /* ScanQRViewModel.swift in Sources */,
1788 1773
 				05130FB721C9E80F004EF1BE /* MessageListItem.swift in Sources */,
1789
-				05D269EB227EDFB00030062C /* Array+PhotoItem.swift in Sources */,
1790 1774
 				05B2C62121D727AA008063B3 /* StatusResource.swift in Sources */,
1791 1775
 				051310C021CB6EF4004EF1BE /* UserInfo.swift in Sources */,
1792 1776
 				05594BFF2240BEDE002D4910 /* PhotoDetailViewModel.swift in Sources */,

二进制
PaiAi/Paiai.xcodeproj/project.xcworkspace/xcuserdata/FFIB.xcuserdatad/UserInterfaceState.xcuserstate


+ 0 - 12
PaiAi/Paiai.xcodeproj/xcuserdata/FFIB.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -2,16 +2,4 @@
2 2
 <Bucket
3 3
    type = "1"
4 4
    version = "2.0">
5
-   <Breakpoints>
6
-      <BreakpointProxy
7
-         BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
8
-         <BreakpointContent
9
-            shouldBeEnabled = "Yes"
10
-            ignoreCount = "0"
11
-            continueAfterRunningActions = "No"
12
-            scope = "0"
13
-            stopOnStyle = "0">
14
-         </BreakpointContent>
15
-      </BreakpointProxy>
16
-   </Breakpoints>
17 5
 </Bucket>

+ 0 - 14
PaiAi/PaiaiDataKit/DataLayer/Model/Reusable/ModelExtension/Array+GroupItem.swift

@@ -1,14 +0,0 @@
1
-//
2
-//  Array+GroupItem.swift
3
-//  PaiaiDataKit
4
-//
5
-//  Created by ffib on 2019/5/5.
6
-//  Copyright © 2019 FFIB. All rights reserved.
7
-//
8
-
9
-import Foundation
10
-extension Array where Element == GroupItem {
11
-    mutating func command() {
12
-        
13
-    }
14
-}

+ 0 - 15
PaiAi/PaiaiDataKit/DataLayer/Model/Reusable/ModelExtension/Array+PhotoItem.swift

@@ -1,15 +0,0 @@
1
-//
2
-//  Array+PhotoItem.swift
3
-//  PaiaiDataKit
4
-//
5
-//  Created by ffib on 2019/5/5.
6
-//  Copyright © 2019 FFIB. All rights reserved.
7
-//
8
-
9
-import Foundation
10
-
11
-extension Array where Element == PhotoItem {
12
-    mutating func command() {
13
-        
14
-    }
15
-}

+ 3 - 2
PaiAi/PaiaiDataKit/PresentLayer/Group/GroupViewModel.swift

@@ -24,7 +24,7 @@ public class GroupViewModel {
24 24
     
25 25
     
26 26
     private var _isLoading = PublishSubject<Void>()
27
-    private let _items = BehaviorRelay<[PhotoItem]>(value: [])
27
+    private let _items: BehaviorRelay<[PhotoItem]>
28 28
     private let _hasData = BehaviorRelay<Bool>(value: false)
29 29
     
30 30
     public var groupItem: BehaviorRelay<GroupItem>
@@ -57,7 +57,8 @@ public class GroupViewModel {
57 57
     
58 58
     public weak var delegate: GroupViewModelDelegate?
59 59
     
60
-    public init(groupItem: GroupItem) {
60
+    public init(groupItem: GroupItem, items: [PhotoItem] = []) {
61
+        self._items = BehaviorRelay<[PhotoItem]>(value: items)
61 62
         self.repository = GroupPhotoRepository(groupId: groupItem.group_id)
62 63
         self.groupItem = BehaviorRelay<GroupItem>(value: groupItem)
63 64
         ShareRecentGroupInfo.add(groupItem)

+ 4 - 2
PaiAi/PaiaiDataKit/PresentLayer/PhotoDetail/PhotoDetailViewModel.swift

@@ -13,7 +13,7 @@ import RxDataSources
13 13
 
14 14
 public protocol PhotoDetailViewModelDelegate: class {
15 15
     func didSelected()
16
-    func navigateToGroup(_ item: GroupItem)
16
+    func navigateToGroup(_ item: GroupItem, photoItems: [PhotoItem])
17 17
 }
18 18
 
19 19
 
@@ -180,7 +180,9 @@ public final class PhotoDetailViewModel {
180 180
 
181 181
 extension PhotoDetailViewModel {
182 182
     public func navigateToGroup() {
183
-        delegate?.navigateToGroup(GroupItem(json: _items.value[currIndex].toJSON() as [String : AnyObject]))
183
+        let currItem = _items.value[currIndex]
184
+        delegate?.navigateToGroup(GroupItem(json: currItem.toJSON() as [String : AnyObject]),
185
+                                  photoItems: _items.value.filter { $0.photo_id == currItem.photo_id })
184 186
     }
185 187
     
186 188
     public func didSelected() {

+ 1 - 1
PaiAi/Paiai_iOS/App/Home/HomeCoordinator.swift

@@ -38,7 +38,7 @@ extension HomeCoordinator: HomeViewModelDelegate {
38 38
         let coordinator = PhotoDetailCoordinator(vc,
39 39
                                                  nav: navigationController,
40 40
                                                  viewModel: PhotoDetailViewModel(items: items, currIndex: currIndex))
41
-        coordinator.start().subscribe().disposed(by: disposeBag)
41
+        coordinate(to: coordinator).subscribe().disposed(by: disposeBag)
42 42
         navigationController.pushViewController(coordinator.photoDetailViewController)
43 43
     }
44 44
     

+ 2 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailCoordinator.swift

@@ -31,9 +31,9 @@ final class PhotoDetailCoordinator: BaseCoordinator<Void> {
31 31
 }
32 32
 
33 33
 extension PhotoDetailCoordinator: PhotoDetailViewModelDelegate {
34
-    func navigateToGroup(_ item: GroupItem) {
34
+    func navigateToGroup(_ item: GroupItem, photoItems: [PhotoItem]) {
35 35
         let vc = GroupViewController.instantiate()
36
-        vc.viewModel = GroupViewModel(groupItem: item)
36
+        vc.viewModel = GroupViewModel(groupItem: item, items: photoItems)
37 37
         let coordinator = GroupCoordinator(vc,
38 38
                                            navigationController: navigationController,
39 39
                                            navigationSource: .photoDetail)